package com.amadeus.personal_demo;

import android.graphics.Bitmap;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;

import java.util.Hashtable;

public class D128_code {
    private static final int Black = 0xff000000;

    public static Bitmap createCode(String string, int heightandwidth) throws WriterException {
        Hashtable<EncodeHintType,String> hints = new Hashtable<EncodeHintType, String>();
        hints.put(EncodeHintType.CHARACTER_SET,"utf-8");
        BitMatrix matrix = new MultiFormatWriter().encode(string, BarcodeFormat.CODE_128,heightandwidth,heightandwidth,hints);
        int width = heightandwidth;
        int height = 50;
        int pixels[] = new int [width * height];

        for (int y = 0;y<height;y++){
            for (int x = 0; x<width;x++){
                if (matrix.get(x,y)){
                    pixels[y*width+x] = Black;
                }
            }
        }
        Bitmap bitmap = Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0,width,0,0,width,height);
        return bitmap;
    }
}
